Ambient light control and calibration via a console

ABSTRACT

Ambient light control and calibration systems and methods are provided herein. According to some embodiments, exemplary systems may include a console that includes a processor that executes logic to control a plurality of nodes to reproduce a virtual lighting scheme of a virtual environment in a physical user environment. Additionally, the system may include a plurality of nodes that each includes a light emitting device, a receiver that communicatively couples the node to the console, and a processor that executes logic to control the light emitting device.

FIELD OF THE PRESENT TECHNOLOGY

The present technology relates generally to ambient light control via a console, such as a gaming system. The present technology may allow for virtual lighting schemas of a virtual environment to be replicated by light emitting nodes distributed throughout a physical user environment, such as a room.

SUMMARY OF THE PRESENT TECHNOLOGY

According to various embodiments, the present technology may be directed to systems that include: (a) a console that comprises a processor that executes logic to control a plurality of nodes to reproduce a virtual lighting scheme of a virtual environment in a physical user environment; and (b) each of the plurality of nodes comprising: (i) a light emitting device; (ii) a receiver that communicatively couples the node to the console; and (ii) a processor that executes logic to control the light emitting device.

The present technology may be directed to nodes that include: (a) one or more processors; and (b) logic encoded in one or more tangible media for execution by the one or more processors and when executed operable to perform operations comprising: (i) positionally calibrating by: (1) outputting calibration signals; (2) receiving calibration signals from other nodes within a user environment; and (3) calculating distances between the node and other nodes within the user environment using the calibration feedback; and (ii) providing the calculated distances to a console that is communicatively coupled to the node.

The present technology may be directed to system that include (a) a first node that comprises: (i) a light emitting device that receives light calibration signals; (ii) an audio emitter; (iii) an audio receiver that receives audio calibration signals; (iv) a processor that executes logic to: (1) control the light emitting device; and (2) calculate a relative position of the first node from light and audio calibration signals received from additional nodes within a user environment; and (b) a console that controls a plurality of nodes to reproduce a virtual lighting environment within the user environment, the first node included in a plurality of nodes which are distributed within the user environment.

The present technology may be directed to a method that includes: (a) generating a topology of nodes which are distributed throughout a physical user environment by analyzing calibration feedback received from the nodes; and (b) controlling the nodes to reproduce a virtual lighting scheme of a virtual environment in the physical user environment.

The present technology may be directed to a non-transitory machine-readable storage medium having embodied thereon a program. In some embodiments the program may be executed by a machine to perform a method. The method may comprise: (a) generating a topology of nodes which are distributed throughout a physical user environment by analyzing calibration feedback received from the nodes; and (b) controlling the nodes to reproduce a virtual lighting scheme of a virtual environment in the physical user environment.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain embodiments of the present technology are illustrated by the accompanying figures. It will be understood that the figures are not necessarily to scale and that details not necessary for an understanding of the technology or that render other details difficult to perceive may be omitted. It will be understood that the technology is not necessarily limited to the particular embodiments illustrated herein.

FIG. 1 illustrates an exemplary architecture for practicing aspects of the present technology;

FIG. 2 illustrates block diagrams of an exemplary console and an exemplary node.

FIG. 3 is a block diagram of an exemplary computing system for implementing embodiments of the present technology.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

While this technology is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail several specific embodiments with the understanding that the present disclosure is to be considered as an exemplification of the principles of the technology and is not intended to limit the technology to the embodiments illustrated.

It will be understood that like or analogous elements and/or components, referred to herein, may be identified throughout the drawings with like reference characters. It will be further understood that several of the figures are merely schematic representations of the present technology. As such, some of the components may have been distorted from their actual scale for pictorial clarity.

Generally speaking, the present technology may be used to control light nodes which are distributed throughout a physical user environment, such as a room. A console may control the nodes by causing the nodes to emit light that replicates ambient lighting conditions of a virtual environment, generated, for example, by a videogame. These ambient lighting conditions may be referred to as a virtual lighting scheme.

According to some embodiments, light nodes may be plugged in to any wall outlet or inserted into any lighting fixture in a user environment. Thus, the user environment may include a plurality of light nodes that are distributed throughout.

In some stances, each of the light nodes may comprise an array of light emitting diodes (LED) that are configured to generate a spectrum of colored light. In some instances, the light node may be capable of emitting full range light but up to 440 lumens of white light. For example, the light nodes may use a multicolored (e.g., red, green, blue) “RGB” LED array. Additionally, the light node may comprise a high quality speaker, a microphone, a photo sensor capable of detecting color and intensity of light, and a reliable low latency communication receiver or transceiver which utilizes, for example, radio frequencies, infrared light, Bluetooth, powerline, or WiFi communications—just to name a few. A light node may be capable of determining its location relative to other light nodes within the user environment using various calibration techniques which will be described in greater detail below.

A console may emit a surround audio stream, decode the stream, and re-encode the stream based on predictions regarding what audio signals should be emitted from the current locations of the light nodes, or a closes approximation thereof. The console may also emit a light control stream to control the light emitted from each of the light nodes based upon a virtual lighting schema generated, for example, by a videogame.

Using calibration data obtained from the light nodes, the console may create an accurate map or topology of the user environment. The videogame may provide its ambient lighting conditions to a system library. Thus, the system library and the map of the user environment may be used together by the console to control operation of the light nodes.

The console may continually monitor and control the operation of the light nodes such that the light emitted by the light nodes corresponds to dynamically changing ambient lighting conditions of a virtual gaming environment. Advantageously, the present technology may be used to augment a videogame experience by bringing audio and lighting effects from the virtual world in to the physical world. The present technology may create a more immersive gaming experience in an inexpensive and easy to configure manner.

These and other advantages of the present technology will be described in greater detail below with reference to the collective drawings (e.g., FIGS. 1-3).

FIG. 1 illustrates an exemplary architecture 100 for practicing aspects of the present technology. According to some embodiments, the exemplary architecture 100, hereinafter “architecture 100,” may generally comprise a plurality of nodes, such as light nodes 105A-J, which is shown as being distributed around a physical environment such as a user environment 10.

In some instances, nodes 105A-G are each coupled to a different electrical outlet. Nodes 105H-J are each coupled with a different light fixture, such as a potted ceiling lights 110A-C. Each of the nodes 105A-J are communicatively couplable with a console 115 using, for example, a wired connection or wireless connection, such as WiFi, Bluetooth, near field communications (NFC), radio frequency, as well as any other wired or wireless connection type that would allow for transmission of audio and/or light related signals.

Generally, the console 115 may include a dedicated device that cooperates with, for example a display 120. For example, the console 115 may comprise a gaming system, set top box, or other similar device. An exemplary console 115 is described in greater detail below with reference to FIG. 2.

Each of nodes 105A-J is substantially similar in construction and function relative to one another. Therefore, for purposes of brevity, an exemplary light node, such as node 105A will be described in greater detail below. FIG. 2 also illustrates an exemplary node, such as node 105A, constructed in accordance with the present disclosure. In some embodiments, node 105A may comprise a speaker 205 and a light emitter 210. According to some embodiments, the light emitter 210 may include an LED light array that is capable of emitting a very bright full spectrum of light. Additionally, the node 105A may comprise a microphone 215 and a photo sensor 220 capable of sensing intensity and color of environmental lighting conditions within a physical environment, such as the user environment 10 of FIG. 1.

More specifically, the speaker 205 may comprise a speaker capable of producing high quality audio output. The speaker 205 may produce audio output in the 20 Hz to 48 kHz range (e.g., the ability to emit ultra-sound frequencies can be used as an advantage). The speaker 205 may also produce a lower frequency range response in some instances. Thus, the speaker 205 may produce audio output that augments or replaces a sound system, such as a mono, stereo, or multichannel sound system (e.g., surround sound).

The light emitter 210 may comprise RGB LED lighting in an array form that could emit light in the range of 450 lumens of white light maximum, as well as, 200 lumens of any possible color the LED array is designed to emit. In some instances, the LED array may be controllable across a desired lumens range with a granularity of approximately 256 intensities per RGB LED element, although other ranges and granularity factors may also likewise be utilized in accordance with the present technology. While the node 105A has been described as including an LED array, it will be understood that the node 105A may comprise any type or combination of lighting elements such as fluorescent, compact fluorescent, incandescent, or any other lighting element that would be known to one of ordinary skill in the art with the present disclosure before them.

In some instances, the nodes 105A-J may be connected to the main power supply for the house (e.g., when associated with an outlet or lighting fixture). When the nodes 105A-J operated in an “always on” mode, heat generated by the nodes 105A-J may prove problematic. Thus, the LED array selected may be capable of generating 10 W RGB LED light, which will emit approximately 450 lumens of light (equivalent of 40 W incandescent).

In accordance with the present disclosure, the microphone 215 (e.g., sound transducer or transceiver) may include a microphone capable of being sampled at up to 192 kHz. The sample quality produced by the microphone 215 may vary according to design requirements, although a microphone with an eight bit resolution may be utilized, in an exemplary embodiment.

In some instances, the photo sensor 220 may comprise a broad-spectrum photo sensor that can detect the intensity and color of light. Therefore, the photo sensor 220 may be used to view ambient lighting conditions of the user environment 10 as well as calibrate the light output of the LED arrays of other nodes as elements within an LED array produce light output that varies with the age of the LED array and temperature at which the LED array is operating.

In some instances, the node 105A may comprise a communications module 225 that allows the node 105A to communicatively couple with other nodes in the area. The communications module 225 may also allow the node 105A to communicatively couple with a control device, such as the console 115. The communications module 225 may utilize any one or more communications media, including, but not limited to, RF, Bluetooth, WiFi, and power line transmission—just to name a few.

In some instances, the communications module 225 may utilize a primary communications media 225A, such as power line transmission, and an auxiliary media, such as low range Bluetooth. The auxiliary media may be used when the primary communications media is not be reliable enough or unavailable.

The node 105A may also comprise power source 230 which provides electrical energy to each of the various components of the node 105A. Alternatively, in some instances, the node 105A may comprise an interface, which allows the node 105A to electrically couple with, for example, an outlet, a light fixture, or other similar electrical interface that would allow a light fixture to receive power from a power source.

According to some embodiments, the node 105A is an “always on” device. In other instances, the node 105A may employ a stand-by mode that would allow for a significant reduction in power consumption levels relative to a standard night light (e.g., less than one watt if night light mode is active). In stand-by mode, the node 105A may monitor environmental lighting levels via the photo sensor 220 and activate the LED array to create a minimum light level within user environment 10 (or a section of user environment 10). The microphone 215 may detect a movement or other presence within the user environment 10, which may indicate a need for ambient lighting within the user environment 10.

The node 105A may also comprise a processor 235, which executes instructions stored in memory to perform the various methods or features of the node 105A. That is, the processor 235 may comprise a microprocessor, system on a chip, or an application specific integrated circuit that causes the node 105A to perform the various methods that will be described in greater detail below. According to some embodiments, the processor 235 may comprise a microprocessor having sufficient computing power to perform the various digital signal processing capabilities required to produce and mix audio and light signals received by the microphone 215 and the photo sensor 220 of the node 105A to determine a virtual location for the node 105A.

In addition to a processor having instructions, the node 105A may include other components of a computing device, such as the computing system 300 described in greater detail relative to FIG. 3.

In some embodiments, exemplary nodes may be constructed to resemble typical light features such as light bulbs, night lights, sconces, and so forth. Thus, these exemplary nodes may be used in place of their common counterparts.

Generally speaking, in an exemplary operation, an end user would plug in a plurality of nodes 105A-J (or any desired number of nodes) in to a desired power source or a power source for which the nodes have been configured to interface with, be it in a light-bulb form or night-light form. An auto calibration program may be executed on the console 115 that cause the nodes 105A-J to utilize LED arrays, speakers, photo sensors, and microphones to calibrate audio and lighting characteristics of the user environment 10.

In some instances, the console 115 may comprise an exemplary gaming console such as the Sony PlayStation™. The console 115 may utilize integrated or periphery devices to augment positional information calculated by the nodes 105A-J. For example, the console 115 may utilize a PlayStation Eye™ camera to determine positional information such as a quadrant of the user environment in which a node is located, a relative distance between each of the nodes and the console. The console 115 may also determine if one or more of the nodes 105A-J are obscured. The various types of calibration information determined from the nodes 105A-J and/or the console may be used to generate or improve a representation of the user environment utilized by the console 115.

Indeed, the console 115 may automatically detect the addition or removal of a node from the user environment 10. Once detected, the console 115 may automatically suggest running a calibration for the nodes again. Such automated behaviors of the console 115 may minimize the amount of technical knowledge required by the end-user when installing such a system.

The console 115 may execute a calibration program to cause the console 115 to emit a series of sounds from a speaker 250 associated with the console. The console 115 may also cause the nodes 105A-J to emit sound and light signals. The console 115 may use the node calculated location information retrieved from the nodes 105A-J, as well as augmenting information obtained from a console camera 240 and a microphone 245. Using these various types of information, the console 115 may calculate characteristics of the user environment 10, which would be used to map the user environment.

During this calibration process, the console 115 may generate something which resembles a fireworks show to allow the calibration to be executed in a manner which is pleasant and appealing to the end user. It is noteworthy that in an exemplary console 115 power-up sequence, audio/video could be used to verify current conditions within the user environment 10. The calibration sequence may contain appropriate sections of audio and lighting flashes that can be used to calibrate the audio and lighting characteristics of the user environment 10.

Once calibrated, the console 115 may have an approximate indication of where the nodes 105A-J are located with respect to each other, how far apart the nodes 105A-J are, relative to one another and/or the console 115, and whether or not the nodes 105A-J are occluded in some fashion.

As described above, each of the nodes 105A-J may utilize the various components described above to generate and detect light and audio signals to determine a location relative of a give node relative to other nodes in the user environment 10.

In an exemplary configuration sequence a first node 105A may output a flash of light from an LED array. At the same time, the first node 105A may emit a sound. Additional nodes such as nodes 105B, 105C, and 105D (total number is unlimited), each detect the light output by the first node 105A and time how long it takes for the audio signal from the first node 105A to arrive. The length of time between receipt of the light signal and the audio signal may be used by another node to determine an approximate distance between the first node 105A and the receiving node. Indeed, since sound travels at 330 meters/sec, if the nodes comprise a microphone that is capable of generating a sampling accuracy of 192 khz, the receiving node can determine a distance to within approximately 20 millimeters. Although, it will be understood that any obscuring objects may affect the audio travel time to some degree.

Each of the nodes 105A-J would execute this output sequence, which is received by the other receiving nodes. Each of the nodes 105A-J may then transmit their calibration feedback to the console 115. In some instances, the console 115 may use the calibration feedback to form a topology of the user environment 10 with an accurate indication of how nodes 105A-J are positioned within the user environment 10 relative to each other. Given enough nodes with enough separation, an additional parameter of height may also be determined. Thus, the calibration feedback augmented with height data to generate a three dimensional representation of the nodes 105A-J within the user environment 10.

When the console 115 is activated in a configuration mode, the console 115 may retrieve the calibration feedback from the nodes 105A-J and then confirm the relative locations of the nodes 105A-J with measurements generated by the console 115 using the console camera 240 (e.g., the PlayStation Eye™) camera to augment the relative node position data of the nodes 105A-J. The camera may determine height information of each of the nodes 105A-J, whether or not the nodes 105A-J are obscured, what direction the nodes 105A-J may be pointing, as well as relative positions of the nodes 105A-J to any other audio emitting devices in the user environment, such as a surround sound system.

Once the calibration feedback has been obtained and/or calculated, pictures of the user environment may be obtained by the console 115 using the console camera 240. For example, pictures may be taken when the nodes 105A-J have activated their lights in sequence to allow acquisition of depth information on objects by projecting and detecting the direction of shadows generated by objects within the user environment 10. This sequence may also be used even if the nodes are outside the direct field of view of the camera, as a shadow cast by a node may provide relative position information of nodes or objects with the user environment 10.

In some embodiments, the console camera 240 may be adapted to detect infra-red light. The LED arrays of the nodes 105A-J may be tuned to emit a color in the infra-red range. In other instances, each node may include a dedicated IR transceiver that may broadcast and/or received IR signals.

The detection of IR signals may also allow for the detection and tracking of the movement of objects within the user environment 10 with greater level of accuracy than obtaining images of the user environment with the console camera 240.

According to some embodiments, a program such as a videogame, which is being facilitated by the console 115, may desire to control environmental lighting (e.g., nodes 105A-J) of the user environment 10. Generally, executable code within the program may indicate to a system library used by the console 115 where ambient lights are within a virtual environment. The location and operation of ambient lights within the virtual environment may be referred to as a virtual lighting scheme.

The console 115 can then use the virtual lighting scheme to control the nodes 105A-J within the user environment 10 to approximately match the lighting within the virtual environment. In some instances, the system library may be updated frequently to match activity occurring within the program. Thus, lighting elements used by the nodes 105A-J and controlled by the console 115 can be used to produce light conditions within the user environment that approximate the lighting conditions within the virtual environment which is being displayed to an end user.

During game play, depth information captured by the console camera 240 associated with the console 115 may be used to augment the replication of the lighting conditions of the virtual environment. That is, because the console 115 knows the location of all of the nodes 105A-J, the console 115 can control the nodes 105A-J to cause them to act in a particular desired sequence. During operation, the images of the user environment may be captured and then used, along with the known location information of the nodes 105A-J to create motion vectors that describe how shadows move within the user environment. These motion vectors may be used by the console 115 to create additional three-dimensional depth information than would otherwise be possible with just the camera alone.

By way of non-limiting example, if an end user is playing a videogame and the ambient light is bright within the videogame environment, console may cause the nodes 105A-J to use their respective lighting elements to light up the entire user environment. In contrast, if an end user enters an area of a virtual environment where there are lots of “Zombies,” the console 115 may progressively darken the user environment down to a sinister red color. The red color may be generated from controlling nodes that are positioned behind or in front of users U1 and U2. The change in lighting may foreshadow danger. The console 115 may cause a multicolor LED array of one or more nodes to emit colored light in accordance with color parameters included in the virtual lighting scheme being used by the console 115.

In an additional example, if there are flickering lanterns in a hallway within a virtual environment, the console 115 may cause various nodes within the user environment to flicker in accordance with their positions within the virtual environment. For example, if an end user within the virtual environment passes a flickering light in the virtual environment, nodes assigned to similar positions within the user environment would flicker sequentially from front to behind or vice versa as the end user passes the virtual light within the virtual environment.

In an additional example, if a gun-shot occurs behind an end user in a virtual environment, a node may briefly flash one of the light emitters to indicate the gun fire, in a directional fashion. Because the console 115 knows where nodes are located within the user environment the console 115 may use the nodes to “move” light that is occurring across a virtual scene within the user environment to give an indication of movement within the user environment. In another example, when a flash grenade is used within a virtual environment, the nodes within the user environment can flash bright and fade down, as would occur within the virtual environment.

Additionally, a light emitter (e.g., LED array) within a node may be positioned in such a way that the console 115 can control the projection of the light in a non-linear fashion from the node. For example, if the node includes an LED array, the console 115 may use the LED array to emit light in a fan shape so that the console 115 has broader control of light emitted within the user environment in the area of the node.

Alternative uses for the present technology may include controlling ambient lighting within a room to reduce unnecessary lighting of unoccupied rooms. In an exemplary embodiment, the nodes (or other devices within a room) emit ultra-sonic frequencies. These ultrasonic frequencies may be detected by the nodes and used for echo location of objects within the user environment. The echo location data generated may be used to track object movement, direction, and velocity within a user environment.

Additionally, since the console 115 provides a centralized control mechanism, user environment lighting via the nodes may be adjusted based on personal preference, time of day, other devices in operation, or other metrics that may be used to change user environment lighting that would be known to one of ordinary skill in the art.

Additionally, in some embodiments, using analysis of the images that are being processed through the console 155, the audio and visual environment from a movie may be replicated in the user environment while end users are watching the movie.

In some embodiments, rather than control sequences being determined or read from a program at the console, a control stream may be sent to the console 115, or directly to the nodes 105A-J to actively manage the user environment lighting characteristics in a manner controlled by the director of a movie. The control stream may be received along with a corresponding video stream.

As used herein, the term “module” may also refer to any of an application-specific integrated circuit (“ASIC”), an electronic circuit, a processor (shared, dedicated, or group) that executes one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality. In other embodiments, individual modules may include separately configured web servers.

FIG. 3 illustrates an exemplary computing system 300 that may be used to implement an embodiment of the present technology. The computing system 300 of FIG. 3 may be implemented in the contexts of the likes of computing systems, networks, exchanges, servers, or combinations thereof disclosed herein. The computing system 300 of FIG. 3 includes one or more processors 310 and main memory 320 (also referred to herein as memeory 320). Main memory 320 stores, in part, instructions and data for execution by processor 310. Main memory 320 may store the executable code when in operation. The system 300 of FIG. 3 further includes a mass storage device 330, portable storage medium drive(s) 340 (also referred to herein as portable storage 340 and as portable storage device 340), output devices 350, user input devices 360, a graphics display 370, and peripheral devices 380 (also referred to herein as peripheral(s) 380).

The components shown in FIG. 3 are depicted as being connected via a single bus 390. The components may be connected through one or more data transport means. Processor 310 and main memory 320 may be connected via a local microprocessor bus, and the mass storage device 330, peripheral device(s) 380, portable storage device 340, and graphics display 370 may be connected via one or more input/output (I/O) buses.

Mass storage device 330, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor 310. Mass storage device 330 may store the system software for implementing embodiments of the present technology for purposes of loading that software into main memory 320.

Portable storage device 340 operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk, digital video disc, or USB storage device, to input and output data and code to and from the computing system 300 of FIG. 3. The system software for implementing embodiments of the present technology may be stored on such a portable medium and input to the computing system 300 via the portable storage device 340.

Input devices 360 provide a portion of a user interface. Input devices 360 may include an alphanumeric keypad, such as a keyboard, for inputting alpha-numeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Additionally, the system 300 as shown in FIG. 3 includes output devices 350. Suitable output devices include speakers, printers, network interfaces, and monitors.

Graphics display 370 may include a liquid crystal display (LCD) or other suitable display device. Graphics display 370 receives textual and graphical information, and processes the information for output to the display device.

Peripherals devices 380 may include any type of computer support device to add additional functionality to the computing system. Peripheral device(s) 380 may include a modem or a router.

The components provided in the computing system 300 of FIG. 3 are those typically found in computing systems that may be suitable for use with embodiments of the present technology and are intended to represent a broad category of such computer components that are well known in the art. Thus, the computing system 300 of FIG. 3 may be a personal computer, hand held computing system, telephone, mobile computing system, workstation, server, minicomputer, mainframe computer, or any other computing system. The computer may also include different bus configurations, networked platforms, multi-processor platforms, etc. Various operating systems may be used including Unix, Linux, Windows, Macintosh OS, Palm OS, Android, iPhone OS and other suitable operating systems.

It is noteworthy that any hardware platform suitable for performing the processing described herein is suitable for use with the technology. Computer-readable storage media refer to any medium or media that participate in providing instructions to a central processing unit (CPU), a processor, a microcontroller, or the like. Such media may take forms including, but not limited to, non-volatile and volatile media such as optical or magnetic disks and dynamic memory, respectively. Common forms of computer-readable storage media include a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic storage medium, a CD-ROM disk, digital video disk (DVD), any other optical storage medium, RAM, PROM, EPROM, a FLASHEPROM, any other memory chip or cartridge.

Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. Exemplary embodiments were chosen and described in order to best explain the principles of the present technology and its practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. The descriptions are not intended to limit the scope of the technology to the particular forms set forth herein. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments. It should be understood that the above description is illustrative and not restrictive. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the technology as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art. The scope of the technology should, therefore, be determined not with reference to the above description, but instead should be determined with reference to the appended claims along with their full scope of equivalents. 

What is claimed is:
 1. A method, comprising: generating a topology of nodes which are distributed throughout a physical user environment by analyzing calibration feedback received from the nodes, the calibration feedback defining a relative position of a node within the physical user environment, the calibration feedback generated by causing the nodes to output calibration signals to other nodes; causing the nodes to emit light; obtaining images of the physical user environment; generating a three dimensional topology of the physical user environment from the images of the physical user environment and the calibration feedback; and controlling the nodes to reproduce a virtual lighting scheme of a virtual environment in the physical user environment.
 2. The method according to claim 1, further comprising: analyzing shadows of objects included in the images to create motion vectors; and updating the three dimensional topology using the motion vectors.
 3. The method according to claim 1, further comprising receiving the virtual lighting scheme from a system library, the virtual lighting scheme including virtual lighting conditions of a videogame.
 4. The method according to claim 1, further comprising receiving the virtual lighting scheme from a control stream received along with a video stream, the virtual lighting scheme including virtual lighting conditions of a movie.
 5. The method according to claim 1, wherein the analyzing the calibration feedback comprises: receiving a light calibration signal from a second node within the physical user environment; receiving an audio calibration signal from the second node within the physical user environment; and calculating a relative distance between the node and the second node from the light and audio calibration signals.
 6. A system comprising: a processor; and a memory coupled to the processor, the memory storing instructions executable by the processor to: generate a topology of nodes which are distributed throughout a physical user environment by analyzing calibration feedback received from the nodes, the calibration feedback defining a relative position of a node within the physical user environment, the calibration feedback generated by causing the nodes to output calibration signals to other nodes; cause the nodes to emit light; obtain images of the physical user environment; generate a three dimensional topology of the physical user environment from the images of the physical user environment and the calibration feedback; and control the nodes to reproduce a virtual lighting scheme of a virtual environment in the physical user environment.
 7. The system of claim 6, wherein the processor further: analyzes shadows of objects included in the images to create motion vectors; and updates the three dimensional topology using the motion vectors.
 8. The system of claim 6, wherein the processor further receives the virtual lighting scheme from a system library, the virtual lighting scheme including virtual lighting conditions of a videogame.
 9. The system of claim 6, wherein the processor further receives the virtual lighting scheme from a control stream received along with a video stream, the virtual lighting scheme including virtual lighting conditions of a movie.
 10. The system of claim 6, wherein the analyzing the calibration feedback comprises: receiving a light calibration signal from a second node within the physical user environment; receiving an audio calibration signal from the second node within the physical user environment; and calculating a relative distance between the node and the second node from the light and audio calibration signals. 